package cn.edu.gzhmt.user.admin.service.impl;

import java.util.List;

import cn.edu.gzhmt.user.admin.service.IAdminUserService;
import cn.edu.gzhmt.user.admin.service.UserException;
import cn.edu.gzhmt.user.dao.IUserDao;
import cn.edu.gzhmt.user.dao.impl.UserDaoImpl;
import cn.edu.gzhmt.user.domain.User;

/**
 * 后台管里模块：service层实现类
 * 
 * dao层和前台使用的是同一个dao
 * @author azhuo
 *
 */
public class AdminUserServiceImpl implements IAdminUserService {
	
	private IUserDao userDao = new UserDaoImpl();

	/**
	 * 进行用户登录
	 * @throws UserException 
	 */
	public User login(User form) throws UserException {
		User user = userDao.findUserByUsername(form.getUsername());
		// 判断用户是否存在
		if(user == null){
			throw new UserException("用户名不存在，请在核对后重试。");
		}
		
		// 判断密码是否正确
		if(!user.getPassword().equals(form.getPassword())){
			throw new UserException("密码错误，请重新输入。");
		}
		
		// 判断登录的用户是否是管理员
		if(!user.getIsadmin()){
			throw new UserException("你不是管理员，请在成为管里员后登录。");
		}
		
		return user;
	}

	/**
	 * 查询所有客户
	 */
	public List<User> findAll() {
		
		return userDao.findAll();
	}

	/**
	 * 查看所有管理员
	 */
	public List<User> findAllAdmin() {
		
		return userDao.findAllAdmin();
	}

	/**
	 * 根据用户名查询用户
	 */
	public List<User> findUserByUserName(String username) {
		
		return userDao.findUserByUsernameLike(username);
	}

	/**
	 * 用户名查询管理员用户
	 */
	public List<User> findAdminUserByUserName(String username) {
		return userDao.findAdminUserByUsernameLike(username);
	}

}
